package elements 
{
	import flash.display.DisplayObject;
	import flash.display.Sprite;
	import interfaces.IElement;
	import util.Bounds;
	
	/**
	 * Доска для рисования
	 * В нее указываются размер, цвет и инструмент, а она отлавливает нажатия
	 * мыши и после рисует все это дело самостоятельно. Можно добавить
	 * картинку или любой графический элемент
	 * @author kasoi
	 */
	public class Drawboard extends Sprite implements IElement
	{
		
		////////////////////////////////////////////////////////////////////
		// Public properties
		////////////////////////////////////////////////////////////////////
		
		public function get itemColor() : Number 
		{ 
			return this._itemColor; 
		}
		
		public function set itemColor(value: Number) : void 
		{
			this._itemColor = value;
		}
		
		public function get item() : String 
		{ 
			return this.item; 
		}
		
		public function set item(value: String) : void 
		{
			this._item = value;
		}
		
		public function get itemThickness() : Number 
		{ 
			return this._itemThickness; 
		}
		
		public function set itemThickness(value: Number) : void 
		{
			this._itemThickness = value;
		}
		
		public function get size() : Bounds 
		{ 
			return this._size; 
		}
		
		public function set size(value: Bounds) : void 
		{
			this._size = value;
		}
		
		////////////////////////////////////////////////////////////////////
		// Private properties
		////////////////////////////////////////////////////////////////////
		
		private var _itemColor: Number;
		
		private var _item: String;
		
		private var _itemThickness: Number;
		
		private var _size: Bounds;
		
		private var background: Sprite;
		
		private var layers: Array;
		
		////////////////////////////////////////////////////////////////////
		// Public methods
		////////////////////////////////////////////////////////////////////
		
		public function Drawboard(size: Bounds = null, defaultItem: String = null, 
			defaultThickness: Number = NaN, defaultItemColor: Number = NaN,
			useBackground: Boolean = true, defaultBackgroundColor: Number = 0xffffff) 
		{
			if (size == null) size = new Bounds(640, 480);
			this._size = size;
			this.init();
		}
		
		public function show(delay: Number = 0) : void 
		{
			
		}
		
		public function hide(delay: Number = 0) : void 
		{
			
		}
		
		public function destroy() : void 
		{
			
		}
		
		public function addImage(image: DisplayObject) : void 
		{
			
		}
		
		public function switchDepths(layer: int, toLayer: int) : void 
		{
			
		}
		
		public function resize() : void 
		{
			
		}
		
		////////////////////////////////////////////////////////////////////
		// Private methods
		////////////////////////////////////////////////////////////////////
		
		private function init() : void
		{
			
		}
		
		////////////////////////////////////////////////////////////////////
		// Listeners
		////////////////////////////////////////////////////////////////////
		
	}
	
}